/**
 * 用户相关路由配置文件
 * 
 * 路由说明：
 * 1. 公开路由 - 无需身份验证
 *    - 用户注册
 *    - 用户登录
 *    - 忘记密码
 *    - 重置密码
 * 
 * 2. 受保护路由 - 需要身份验证
 *    - 更新用户资料
 *    - 删除账户
 */

const express = require('express');
const router = express.Router();
const userController = require('../controllers/user.controller');
const auth = require('../middleware/auth.middleware');

/**
 * 公开路由
 * 这些路由端点可以被任何用户访问，无需提供认证令牌
 */
router.post('/register', userController.register);      // 新用户注册
router.post('/login', userController.login);           // 用户登录
router.post('/forgot-password', userController.forgotPassword);    // 请求密码重置
router.post('/reset-password', userController.resetPassword);      // 执行密码重置

/**
 * 受保护路由
 * 这些路由需要有效的JWT令牌才能访问
 * 使用auth中间件进行token验证
 */
router.use(auth);
router.put('/profile', userController.updateProfile);    // 更新用户个人资料
router.delete('/account', userController.deleteAccount); // 删除用户账户

module.exports = router;
